
#ifndef _Particle_H_
#define _Particle_H_

#include "../../Utils/Vector2D.h"

class Particle {
  public:
    Particle(float col_r, float col_g, float col_b,
             float life, float size, float life_decay, float size_decay,
             Vector2D position, Vector2D velocity, 
             bool use_texturing=false, unsigned texture_id=0, 
             bool flare_up=false);

    virtual ~Particle();
    
    virtual void render(void);
    virtual void update(void);
    virtual bool active(void);


  private:

    float col_r, col_g, col_b;
    float life, size, cur_size;
    float life_decay, size_decay;
    Vector2D position;
    Vector2D velocity;

    bool use_texturing;
    unsigned texture_id;
    bool flare_up, life_inc;

    friend class SphereRepulsorModifier;
    friend class PointAttractorModifier;
};

#endif

